#!/usr/bin/env bun

/**
 * 快速生成一个包含Mermaid错误的PDF样本来验证错误处理
 */

import { quickToPdf } from '../../../../src/tools/convert/index.js';

// 创建包含错误Mermaid语法的测试内容
const markdownWithErrors = `# Mermaid 错误处理测试

## 1. 正确的语法（对比）
\`\`\`mermaid
graph TD
    A[正常开始] --> B[处理中]
    B --> C[正常结束]
\`\`\`

## 2. 语法错误测试
\`\`\`mermaid
graph TD
    A[开始] B[处理]
    B --> C[结束]
\`\`\`
上面的图表缺少箭头，应该显示错误信息。

## 3. 无效的图表类型
\`\`\`mermaid
wrongchart
    A --> B
\`\`\`
这是一个不存在的图表类型。

## 4. 空的Mermaid块
\`\`\`mermaid

\`\`\`
这是一个空的Mermaid块。

## 5. 另一个错误语法
\`\`\`mermaid
sequenceDiagram
    participant A
    participant B
    A--> B: 错误的箭头语法
\`\`\`

这样我们就可以看到Mermaid语法错误时PDF会如何显示！
`;

async function testMermaidErrors() {
  console.log('🧪 生成Mermaid错误处理演示PDF');

  try {
    const outputPath = './mermaid-error-demo.pdf';

    const result = await quickToPdf(markdownWithErrors, outputPath, {
      title: 'Mermaid错误处理演示',
      enableMermaid: true,
    });

    if (result.success) {
      console.log(`✅ PDF生成成功！`);
      console.log(`📁 文件路径: ${outputPath}`);
      console.log(`📊 文件大小: ${(result.size / 1024).toFixed(2)}KB`);

      console.log('\n📖 生成的PDF会显示:');
      console.log('🟢 正确的Mermaid语法 → 正常的SVG图表');
      console.log('🟡 错误的Mermaid语法 → 黄色警告框，显示错误信息');
      console.log('🟡 无效图表类型 → 黄色警告框，显示原始代码');
      console.log('🔵 空的Mermaid块 → 灰色提示框，显示"空的图表定义"');
      console.log('\n💡 用预览或PDF阅读器打开文件查看效果！');
    } else {
      console.log('❌ PDF生成失败');
    }
  } catch (error) {
    console.error('❌ 测试失败:', error);
  }
}

// 执行测试
testMermaidErrors().catch(console.error);
